\section{Introduction}
\subsection{Growth Trends in Bioinformatics}
The size of bioinformatics datasets has grown exponentially in recent
years, and shows no signs of abating.  With increases in sequencing
speed and parallel efforts being conducted across the globe on many
genomes, an explosion of genomic data is occurring.
Figure~\ref{genbank} shows the exponential increase in base pairs and
sequences stored in NCBI's GenBank repository since 1982.

While the collective speed of sequencing and annotating sequences has
increased---yielding larger and faster-growing datasets---the
resulting volume of data is problematic from a data management and
processing viewpoint.  The cost and availability of computing power
has roughly followed Moore's Law, which postulates that the number of
transistors on a chip will roughly double every eighteen months, this
trend has slowed or been transformed in recent years by the advent of
multi-core processors.  Additionally, other bottlenecks to efficient
processing of this data include the I/O speeds of disk drives, which
have not scaled in proportion to increasing disk size and decreasing
cost.


\begin{figure}
\includegraphics[scale=.7, angle=90]{genbank.pdf}
\caption{Growth of GenBank in recent years~\cite{genbank}.}
\label{genbank}
\end{figure}




\subsection{BLAST and Condor}

Distributed computing systems can alleviate this growing mismatch
between available computing power and the growing volume of
bioinformatics data.  Distributed systems have been developed to
effectively harness and utilize the computing power of many connected
systems and the parallel storage of multiple attached local disks.
Condor~\cite{condorinpractice} is one such system which was developed
specifically to harness idle workstation computing power to provide
collective distributed computing resources to the community.



BLAST~\cite{blast} is a widely-used data-intensive bioinformatics 
application.  It accepts nucleotide or peptide sequences as input, 
conducts alignment searches against much larger sequence databases, and 
returns a ranked set of matching sequences.  Multi-sequence BLAST 
queries are trivially parallel and thus are easily distributable.


There are many practical and logistical barriers intrinsic to harnessing
distributed computing resources.  Reliability and fault-tolerance are
concerns when dealing with multiple independent systems.  Effective
division of the processing task is another, along with load-balancing
and dealing with heterogeneous distributed execution environments.  In
short, harnessing distributed resources, while possessing the
potential for high return on investment, is complicated and
difficult.  


\subsection{Providing a usable BLAST abstraction atop Condor}


Such systems present intrinsic usability difficulties even for those
versed in their construction and use.  The necessity of such systems
will grow and spread as the volume of data grows in many domains.  To
facilitate growth, special attention should be paid to the usability
and interfaces of such systems to make them approachable and
understandable by those not versed in distributed computing but in the
relevant problem domain.


BioCompute aims to provide an abstraction of distributed computing
resources for bioinformatics applications.  By hiding details of the
distributed system and providing a usable domain-pertinent interface,
BioCompute can both improve bioinformatics runtimes and facilitate
usage of distributed resources.  It also aims to aid in data
management by providing tools to annotate and detail experiments.


BioCompute has been developed to handle distribution of BLAST queries.  Work
is in progress for the construction of a modular, application-agnostic
system for which modules can be written to provide distributed
implementations for different applications.  



This paper will discuss the implementation of BioCompute to distribute
BLAST queries.  Section three is on related works.  Sections four and
five discuss the implementation of distributing BLAST via Condor and
handling replication of BLAST sequence databases.  Section six
discusses performance and affecting factors.  Section seven discusses
usability concerns for the front-end of the system.



